#include <iostream>
#include <vector>
using namespace std;

namespace byh
{
template<class T>
class stack
{
public:
    stack()
    {
        
    }
    void push(const T& x)
    {
        _c.push_back(x);
    }
    
    void pop()
    {
        _c.pop_back();
    }
    
    T& top()
    {
        return  _c.back();
    }
    
    const T& top() const
    {
        return  _c.back();
    }
    
    size_t size() const
    {
        return _c.size();
    }
    
    bool empty() const
    {
        return _c.empty();
    }
    
private:
    std::vector<T> _c;
};
void text1()
{
    stack<int> n;
    
    n.push(1);
    n.push(2);
    n.push(3);
    
    while(!n.empty())
    {
        cout << n.top() << endl;
        n.pop();
    }

    
}
}




int main()
{
   byh::text1();
}

